Public-private key encryption is used extensively for secure communications and electronic signatures. The security of the private key is a concern: it is desirable that the private key never be detected by any adversary, whether through reverse engineering or otherwise. In many applications, the private key is stored in a non-volatile memory, and on a separate chip (i.e., separate from the main microprocessor), with its own access port. This makes it possible for an adversary to access the private key. One reason to store the private key on a separate non-volatile memory is that advanced node (14 nm and beyond) complementary metal oxide semiconductor (CMOS) technologies do not have a dense non-volatile storage device that is resistant to reverse engineering. For example, advanced node CMOS technologies do include electrical fuse structures. However, such structures can be reverse engineered (and the key uncovered).